<?php
namespace Amis\feedback;

use Amis\Basics\AmisBasics;

/**
 * 轻提示
 * ToastItem属性表
 * 属性名    类型    默认值    说明
 * title    string | SchemaNode        标题
 * body    string | SchemaNode        内容
 * level    string    info    展示图标，可选'info'、'success'、'error'、'warning'
 * position    string    top-center（移动端为center）    提示显示位置，可用'top-right'、'top-center'、'top-left'、'bottom-center'、'bottom-left'、'bottom-right'、'center'
 * closeButton    boolean    false    是否展示关闭按钮
 * showIcon    boolean    true    是否展示图标
 * timeout    number    5000（error类型为6000，移动端为3000）    持续时间
 */
class Toast extends AmisBasics
{
    public string $type       = 'button';
    public $actionType = 'toast';

    public function items(array $items = [])
    {
        $this->items = $items;
        return $this;
    }

    /**
     * 提示显示位置，可用'top-right','top-center','top-left','bottom-center','bottom-left','bottom-right','center'
     * @param string $position
     * @return $this
     */
    public function position(string $position)
    {
        if (in_array($position, ['top-right', 'top-center', 'top-left', 'bottom-center', 'bottom-left', 'bottom-right', 'center'])) {
            $this->position = $position;
        }
        return $this;
    }

    public function closeButton(bool $closeButton = false)
    {
        $this->closeButton = $closeButton;
        return $this;
    }

    public function showIcon(bool $showIcon = true)
    {
        $this->showIcon = $showIcon;
        return $this;
    }

    /**
     * 持续时间 5000（error类型为6000，移动端为3000）
     * @param int $timeout
     * @return $this
     */
    public function timeout(int $timeout = 5000)
    {
        $this->timeout = $timeout;
        return $this;
    }
}